import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex)

export default new Vuex.Store({
  state: {  // 存储状态(全局变量)
    // count:10,
    arr:[],
    brr:[],
    allPrice:'',
    username:'',
  },
  mutations: {    // 修改状态,并且是同步的  在组件中使用$store.commit('add',params)
    // 商品详情跳转购物车
    add(state,data){   // 第一个参数不能改变,必须传state,第二个参数传递过来的数据
      var flag= false;
      state.arr.some(item=>{
        if(item.src==data.src){
          item.proNum+=data.proNum;
          flag=true;
          return true;
        }
      })
      if(!flag){
        state.arr.push(data);
      }
      
    },
    // 购物车跳转结算页面
    order(state,data){
      state.brr=data;
    },
    order_2(state,data){
      state.allPrice=data;
    }
  },
  actions: {      // 与mutations相同,但支持异步操作,在组件中使用是$store.dispath('')
  },
  modules: {      // store的子模块,为了开发大型项目,方便状态管理而使用的
  },
  getters:{
    // getCount:{    // 相当于vue种的computed  计算属性

    // }
  }

})

// 当前这个对象 new Vuex.Store == $store 
